Non-volatile memory (e.g., read only memory (ROM)) and non-volatile storage devices maintain stored data when power is interrupted (e.g., battery is drained, computer is shut down, or computer is restarted). Due to certain limitations however, non-volatile memory is inefficient (e.g., increased cost and data access time) for use as main memory or primary storage. While use of random access memory (RAM), such as dynamic RAM (DRAM) and static RAM (SRAM) as main memory offers advantages over non-volatile memory, such as more efficient accessing of data, RAM is volatile memory which does not maintain its stored data when power supplied to the memory is interrupted.
Non-volatile memory types, such as non-volatile random access memory (NVRAM), continue to emerge as a replacement for, or as a supplement to, volatile RAM. Reliability of these non-volatile memory types as a main memory replacement or supplement is facilitated by the recoverability of persistent data structures to maintain instruction order after power is restored to the non-volatile memory.